<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>

    <script>

        // Promise  承诺   现在许下诺言，将来才会知道结果    

        // 语法
        //    参数是一个回调函数  --- 一般写异步程序
        //        结果是好的   调用这个函数的第一个参数(函数)
        //        结果是不好的  调用这个函数的第二个参数(参数)



        // Promise本身就是一个构造函数
        //    它本身由两个属性
        //         [[PromiseState]]    表示一种状态   pendding    /  fulfiled/rejected
        //              pending 承诺的过程
        //              假如兑现了承诺  这个状态就会变成 fulfiled
        //              假如没有兑现承诺  这个状态就会变成 rejected
        //         [[PromiseResult]]   表示结果的值   --- 无论成功或者失败





        // 买彩票   双数中奖   单数不中

        // const p = new Promise(function(success , fail){
        //     // 
        //     setTimeout(() => {
        //         const n = parseInt(Math.random() * 100) ;
        //         if(n % 2 === 0) {
        //             // success('我中奖号码:' + n) ;
        //             success(n)
        //         } else {
        //             // fail('没有中奖，号码是:' + n) ;
        //             fail(n)
        //         }
        //     } , 2000)
        // })


        // console.log(p);


        const p = new Promise(function(resolve , reject){
            // 
            setTimeout(() => {
                const n = parseInt(Math.random() * 100) ;
                if(n % 2 === 0) {
                    // success('我中奖号码:' + n) ;
                    resolve(n)
                } else {
                    // fail('没有中奖，号码是:' + n) ;
                    reject(n)
                }
            } , 2000)
        })


        console.log(p);


    </script>
    
</body>
</html>